package org.or5e.oss.core.api.bm;

import java.io.OutputStream;
import java.util.ArrayList;

import org.or5e.oss.core.api.bm.server.SMTPServer;

public interface BulkMail {
	public void init(BulkMailConfig config) throws BulkMailException;
	
	public double startCampaign(String campaignName) throws BulkMailException;
	public void stopCampaign(double sessionID) throws BulkMailException;
	public void pauseCampaign(double sessionID) throws BulkMailException;
	public void resumeCampaign(double sessionID) throws BulkMailException;
	
	public BulkMailStatus getStatus(double sessionID) throws BulkMailException;
	public boolean addServer(double sessionID, SMTPServer server) throws BulkMailException;
	public boolean removeServer(double sessionID, SMTPServer server) throws BulkMailException;
	public ArrayList<SMTPServer> getServerList(double SessionID) throws BulkMailException;
	
	public void setLogger(OutputStream outStream) throws BulkMailException;
	
	public void setSecurityManager(BulkMailSecurityManager security);
}